﻿using Abp.Application.Services;
using Abp.Application.Services.Dto;
using MyCompanyName.AbpZeroTemplate.Organizations.Dto;
using MyCompanyName.AbpZeroTemplate.Prm.Admin.QuanDto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;

namespace MyCompanyName.AbpZeroTemplate.Prm.Admin
{
    public interface IQuanAppService : IApplicationService
    {
        Task<List<GetQuanTree>> GetQuanTree();

        Task CreateQuan(CreateQuanInPut input);
        Task MoveQuan(QuanDto.MoveQuanInPut input);

        Task EditQuan(List<EditQuanInPut> input);


        Task GetQuanUser();


        List<GetUserQuanOutPut> GetQuanUser([FromUri] int quanId);


        Task SetQuanUser(SetQuanUserInPut input);


        Task RemoveQuanUser(IdInput<int> input);

        Task RemoveQuan(IdInput<int> input);



        List<GetQuanCheckedTree> GetProjectQuan([FromUri] int projectId);

        List<GetQuanCheckedTree> GetTaskQuan([FromUri]int projectTaskId, string users);


        List<GetQuanCheckedTree> GetUserQuan([FromUri] int userId);



        List<string> GetProjectQuanList([FromUri] int projectId);

        Task SetProjectQuan(SetProjectQuanInPut input);

    }
}
